package ar.edu.utn.frgp.labtec.actions.contrato;

import java.util.HashMap;
import java.util.HashSet;
import java.util.List;

import ar.edu.utn.frgp.labtec.actions.BaseAction;
import ar.edu.utn.frgp.labtec.constants.DBParametersConstants;
import ar.edu.utn.frgp.labtec.constants.ServiceNameConstants;
import ar.edu.utn.frgp.labtec.entities.BooleanEnum;
import ar.edu.utn.frgp.labtec.entities.RevisionContrato;
import ar.edu.utn.frgp.labtec.entities.TipoPermisoEnum;
import ar.edu.utn.frgp.labtec.service.GestionContratoService;

/**
 * The Class BuscarContratoAction.
 * @author Cucurullo Martin
 */
@SuppressWarnings("serial")
public class BuscarContratoAction extends BaseAction  {
	
	private Integer idContratoBus;
	private String anioContratoBus;
	private Integer laboratorio;
	private String departamento;
	private Integer acuerdoTrabajo;
	private Integer recibioElem;
	
	private String razonSocial;
	private String cuit;
	private String rubro;
	private String responsable;
	
	private List<RevisionContrato> resultList;
	
	public BuscarContratoAction(){
		permisos = new HashSet<TipoPermisoEnum>();
		permisos.add(TipoPermisoEnum.L);
	}
	
	public String execute(){
		
		GestionContratoService contratoService = (GestionContratoService) getContext().
			getBean(ServiceNameConstants.GESTION_CONTRATO_SERVICE);
		
		HashMap<String, Object> parameters = createParametersMap();
		resultList = contratoService.getContratos(parameters);

		return SUCCESS;
	}

	private HashMap<String, Object> createParametersMap(){
		
		HashMap<String, Object> parameters = new HashMap<String, Object>();
		
		if(idContratoBus != null)
			parameters.put(DBParametersConstants.ID_CONTRATO, idContratoBus);
		
		if(!"".equals(anioContratoBus))
			parameters.put(DBParametersConstants.ANIO_CONTRATO, anioContratoBus);
		
		if(laboratorio != null)
			parameters.put(DBParametersConstants.LABORATORIO_CODE_LAB, laboratorio);
		
		if(!"".equals(departamento))
			parameters.put(DBParametersConstants.DEPARTAMENTO_CODE_DPTO, departamento);
				
		if(acuerdoTrabajo != null){
			BooleanEnum acuerdoE;
			if(acuerdoTrabajo == 1)
				acuerdoE = BooleanEnum.SI;
			else
				acuerdoE = BooleanEnum.NO;
			parameters.put(DBParametersConstants.ACUERDO_TRABAJO, acuerdoE);
		}
		if(recibioElem != null){
			BooleanEnum recibioElemE;
			if(recibioElem == 1)
				recibioElemE = BooleanEnum.SI;
			else
				recibioElemE = BooleanEnum.NO;
			parameters.put(DBParametersConstants.RECIBIO_ELEMENTOS, recibioElemE);
		}
		if(!"".equals(razonSocial))
			parameters.put(DBParametersConstants.CLIENTE_RAZON_SOCIAL, razonSocial);
		
		if(!"".equals(cuit))
			parameters.put(DBParametersConstants.CLIENTE_CUIT, cuit);
		
		if(!"".equals(rubro))
			parameters.put(DBParametersConstants.CLIENTE_RUBRO, rubro);
		
		if(!"".equals(responsable))
			parameters.put(DBParametersConstants.CLIENTE_RESPONSABLE, responsable);

		return parameters;
	}
	

	public Integer getLaboratorio() {
		return laboratorio;
	}



	public void setLaboratorio(Integer laboratorio) {
		this.laboratorio = laboratorio;
	}



	public Integer getAcuerdoTrabajo() {
		return acuerdoTrabajo;
	}



	public void setAcuerdoTrabajo(Integer acuerdoTrabajo) {
		this.acuerdoTrabajo = acuerdoTrabajo;
	}



	public Integer getRecibioElem() {
		return recibioElem;
	}



	public void setRecibioElem(Integer recibioElem) {
		this.recibioElem = recibioElem;
	}



	public String getRazonSocial() {
		return razonSocial;
	}



	public void setRazonSocial(String razonSocial) {
		this.razonSocial = razonSocial;
	}



	public String getCuit() {
		return cuit;
	}



	public void setCuit(String cuit) {
		this.cuit = cuit;
	}



	public String getRubro() {
		return rubro;
	}



	public void setRubro(String rubro) {
		this.rubro = rubro;
	}



	public String getResponsable() {
		return responsable;
	}



	public void setResponsable(String responsable) {
		this.responsable = responsable;
	}

	public void setResultList(List<RevisionContrato> resultList) {
		this.resultList = resultList;
	}

	public List<RevisionContrato> getResultList() {
		return resultList;
	}

	public void setDepartamento(String departamento) {
		this.departamento = departamento;
	}

	public String getDepartamento() {
		return departamento;
	}

	public Integer getIdContratoBus() {
		return idContratoBus;
	}

	public void setIdContratoBus(Integer idContratoBus) {
		this.idContratoBus = idContratoBus;
	}

	public String getAnioContratoBus() {
		return anioContratoBus;
	}

	public void setAnioContratoBus(String anioContratoBus) {
		this.anioContratoBus = anioContratoBus;
	}
	
	


}